package org.jeecg.modules.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @Description: 订单表
 * @Version: V1.0
 */
@Data
@TableName("sys_order")
public class SysOrder implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    /**
     * 创建人
     */
    private String createBy;
    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date createTime;
    /**
     * 更新人
     */
    private String updateBy;
    /**
     * 更新日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date updateTime;

    /**
     * 公司编号
     */
    private String companyCode;

    /**
     * ssp工作编号
     */
    private String sspWorkNo;

    /**
     * 运输产品
     */
    @NotNull(message = "运输产品不能为空")
    private String transportProducts;

    /**
     * 交付仓库
     */
    @NotNull(message = "交付仓库不能为空")
    private String warehouse;


    /**
     * 交付地点
     */
    @NotNull(message = "交付地点不能为空")
    private String deliveryPlace;

    /**
     * 货物品名
     */
    @NotNull(message = "货物品名不能为空")
    private String goodsName;

    /**
     * 包装件数
     */
    @NotNull(message = "包装件数不能为空")
    private Integer packageNumber;


    /**
     * 货物重量
     */

    @NotNull(message = "货物毛重不能为空")
    private BigDecimal goodsWeight;

    /**
     * 长
     */
    @NotNull(message = "体积长不能为空")
    private BigDecimal longValue;
    /**
     * 宽
     */
    @NotNull(message = "体积宽不能为空")
    private BigDecimal widthValue;
    /**
     * 高
     */
    @NotNull(message = "体积高不能为空")
    private BigDecimal heightValue;
    /**
     * 体积
     */
    @NotNull(message = "体积不能为空")
    private BigDecimal volume;

    /**
     * 计费重量
     */
    private BigDecimal chargedWeight;
    /**
     * 运价系数（零单产品有）
     */
    private String freightCoefficient;
    /**
     * 货物货值
     */
    @NotNull(message = "货物货值不能为空")
    private BigDecimal goodsValue;

    /**
     * 收件人
     */
    private String consigneeName;
    /**
     * 收件人联系方式
     */
    private String consigneePhone;
    /**
     * 收件人邮编
     */
    private String consigneePost;
    /**
     * 收件人州
     */
    private String consigneeState;
    /**
     * 收件人城市
     */
    private String consigneeCity;
    /**
     * 收件人地址
     */
    private String consigneeAddress;
    /**
     * 国内运费
     */
    private BigDecimal domesticFreight;
    /**
     * 保险费率
     */
    private BigDecimal insureRate;
    /**
     * 是否需要保险
     */
    private Integer isInsure;
    /**
     * 费用总计
     */

    @NotNull(message = "费用总计不能为空")
    private BigDecimal totalPrice;
    /**
     * 保险费
     */
    private BigDecimal insurePrice;
    /**
     * 干线费用
     */
    private BigDecimal linePrice;

    /**
     * 干线运费单价
     */
    private BigDecimal lineUnitPrice;

    /**
     * 是否签收1:是0:否
     */
    private Integer isSign;

    /**
     * 订单确认1:是0:否
     */
    private Integer orderConfirm;

    /**
     * 发票状态1:已开0:未开
     */
    private Integer invoiceStatus;

    /**
     * 发票号码
     */
    private String invoiceNumber;

    /**
     * 汇率
     */
    private BigDecimal rate;

    /**
     * 是否支付1:是0:否
     */
    private Integer isPay;

    /**
     * 订单编号
     */

    @NotNull(message = "委托人订单编号不能为空")
    private String orderNumber;

    /**
     * 交付单号
     */
    private String deliverNumber;

    /**
     * 订单日期
     */
    private String orderDate;

    /**
     * 进仓日期
     */
    private String warehousingDate;

    /**
     * 出发日期
     */
    private String departureDate;

    /**
     * 目的地
     */
    private String podPlace;

    /**
     * 派送地
     */
    private String podLocation;


    private String gxSupplier;
    private String gnSupplier;
    private String bxSupplier;

    private String entrustCompany;

    private BigDecimal lineCostPrice;

    private BigDecimal linePriceOriginal;

    private String orderDateCn;


    private BigDecimal yfDj;
    private BigDecimal yfPrice;
    private String yfTt;
    private BigDecimal yfRate;
    private BigDecimal yfTotal;
    private BigDecimal yfZhTotal;
    private BigDecimal yfGn;
    private BigDecimal yfBx;
    private BigDecimal mll;
    private BigDecimal mlsr;

    private String orderApiInfo;

}
